package cn.wonderland.system.controller;

import cn.wonderland.basic.util.AjaxResult;
import cn.wonderland.basic.util.PageList;
import cn.wonderland.system.domain.Detail;
import cn.wonderland.system.domain.Type;
import cn.wonderland.system.query.TypeQuery;
import cn.wonderland.system.service.TypeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/type")
public class TypeController {

    @Autowired
    private TypeService typeService;


    /*
     * 查询所有信息
     * */
    @GetMapping()
    public List<Type> findAll() {
        return typeService.findAll();
    }

    /*
     * 查询房屋类型
     * */
    @GetMapping("/findHouseType")
    public List<Detail> findHouseType() {
        return typeService.findHouseType();
    }

    /*
     * 通过id查询单个信息
     * */
    @GetMapping("/{id}")
    public Type findById(@PathVariable("id") Long id) {
        return typeService.findById(id);
    }

    /*
     * 通过id删除单个信息
     * */
    @DeleteMapping("/{id}")
    public AjaxResult deleteById(@PathVariable("id") Long id) {

        // 调用删除方法
        typeService.delete(id);
        // 返回成功的AjaxResult
        return AjaxResult.me().success();

    }

    /*
     * 新增或者修改信息 put
     * */
    @PutMapping()
    public AjaxResult addOrUpdate(@RequestBody Type type) {

        if (type.getId() == null) { // 如果id为空，那么执行新增方法
            typeService.add(type);
        } else { // 否则执行修改方法
            typeService.update(type);
        }
        return AjaxResult.me().success();
    }

    /*
     * 分页查询
     * */
    @PostMapping()
    public PageList<Type> queryByPage(@RequestBody TypeQuery query) {
        return typeService.queryByPage(query);
    }

    /*
     * 批量删除信息
     * */
    @PatchMapping()
    public AjaxResult batchDelete(@RequestBody List<Long> ids) {
        typeService.batchDelete(ids);
        return AjaxResult.me().success();
    }
}
